[Not Applicable]
[Not Applicable]
1. Field of the Invention
This invention generally relates to routing in communication or computer networks. In particular, the invention relates to determining pre-computed paths for transmitting data, including voice and video data, through a network.
2. Description of the Prior Art
Communication networks transfer data from a source to a destination. The data is routed through various nodes and links in the network. The nodes and links may be organized in a flat network hierarchy (i.e., a single peer group) or multiple peer-group levels. Communications networks may include switched virtual circuits (SVCs) for routing a path separately for each request to transfer data.
User calls or requests for transferring data are provided to the network. A path satisfying constraints imposed by a user requirement is determined, such as satisfying bandwidth or delay requirements. SVCs are set-up after routing algorithms determine paths with sufficient resources to meet the user""s requirements.
The data may be transferred using an asynchronous transfer mode (ATM) format. The ATM format defines a standard for signalling and routing, the Private-Network-to-Network-Interface (PNNI) standard. The PNNI standard defines two categories of ATM protocols, one for signalling and one for routing. The standard specifies a framework for source-based link-state routing that includes: (1) a mechanism for establishing a hierarchy among nodes; (2) the specification of the topology information that is available for path computation and selection, and the protocol by which this information is disseminated; and (3) a format in which paths must be specified for PNNI signalling. The PNNI standard does not include a particular routing algorithm or way of using the framework for determining a path.
Two types of algorithms may be used to support SVC routing in an ATM format. A first type of algorithm is used to determine pre-computed paths. The algorithm for pre-computing paths is run at each node, and pre-computed paths are found from that node to every destination in the network. The second type of algorithm is used to calculate a path on-demand if none of the pre-computed paths can accept the call. Both of these types of routing algorithms find paths based on the PNNI link-state information maintained in a topology database at each node. This information includes the recent status of each network link and node, such as the bandwidth, delay, jitter, cell loss ratios and other topology information.
For efficient routing using pre-computed paths, multiple pre-computed paths to each destination may be determined. One approach is to compute a pair of completely disjoint paths to each destination. See the algorithm of Suurballe and Tarjan, xe2x80x9cA Quick Method for Finding Shortest Pairs of Disjoint Paths,xe2x80x9d Networks, Vol. 14, pp. 325-336 (1984). This algorithm computes a pair of disjoint paths such that the total cost of the two paths from a given source to a destination node is minimized. Any additive cost metric can be used, such as delay, jitter or hop count. This algorithm has a complexity proportional to O(M log N), where N is the number of nodes and M is the number of links. However, this algorithm does not yield any output (ie., a path) when no absolutely disjoint paths to the node exist nor can it yield any output when two paths to the destination node share any common resources.
In another known pre-computation algorithm, a single path with maximum available bandwidth that has the minimum delay among all maximum-bandwidth paths is computed. However, this algorithm only computes a single path for each source-destination pair. (i.e., it does not compute an alternate path).
Another algorithm computes a minimum cost path, then assigns large costs to the links in the computed path, then assigns large costs to the links in the computed path, and then computes a second minimum cost path that is therefore maximally disjoint from the first path. There are two main drawbacks of this method. One is that, because of the restriction that the first computed path belong to the pair of computed paths, the computed pair may not be maximally disjoint (i.e., the two paths may share more than the minimum number of links or nodes). The second drawback is that the method requires a large running time, since to compute paths from a single source to all destinations requires N executions of a shortest-path algorithm, which requires O (NM log N) running time assuming Dijkstra""s algorithm is used.
Another algorithm computes k shortest paths having distinct initial links from the source node to each destination node, such that the second node of each path does not belong to any of the other kxe2x88x921 paths. However, this algorithm does not guarantee the computation of an alternate path that avoids an arbitrary blocking link or node.
Several methods for alternate routing have been developed for fully connected networks in which one path is a direct one-hop path and the alternate path is a two-hop path. However, these methods are not applicable to general topology networks nor to paths with multiple per-path constraints.
These and other disadvantages of previous algorithms may be overcome by the invention and preferred embodiment discussed below.
The invention relates to methods for determining at least two pre-computed paths to each selected destination in a communications network. The two paths are maximally disjoint. Maximally disjoint paths are paths where the number of links or nodes common to the two paths is minimized. This minimization is given a priority over other path considerations, such as bandwidth or cost metrics. By pre-computing a maximally disjoint pair of paths, the probability that an inoperable or poor-quality link or node is in both paths is minimized. The probability that the inoperable link or node blocks a transfer of data is minimized. This approach increases the likelihood that calls are accepted into the network. Additionally, a pair of maximally disjoint paths is determined even if absolutely disjoint paths are not possible.
The communications network may include at least four nodes, and maximally disjoint pairs of paths are pre-computed from one or more nodes to one or more other nodes. A third path from each node to each other node may also be computed as a function of bandwidth or a cost metric, such as the same metric used to compute the maximally disjoint paths. Therefore, the advantages of the maximally disjoint pair of paths are provided as discussed above and a path associated with a higher bandwidth or lower cost is provided to more likely satisfy the user requirements of a data transfer.
The maximally disjoint paths may be determined using lexicographic minimization. Lexicographic minimization allows other secondary objectives to be optimized, such as bandwidth. By determining maximally disjoint paths that maximize bandwidth, disjoint paths most likely to satisfy bandwidth requirements associated with a data transfer are determined.
The maximally disjoint paths may be determined with a complexity proportional to the number of links multiplied by the log of the number of nodes, assuming one source and multiple destinations. Therefore, maximally disjoint paths may be quickly determined for more efficient implementation on the network than previous methods. By representing the maximally disjoint paths with a compact representation, the memory required for storing the paths is minimized.
In a particular first aspect of the invention, a method for determining a plurality of paths in a network is provided. A source node and a destination node in the network are selected. Two maximally disjoint paths from the source node to each selected destination node are determined. The two maximally disjoint paths can have one or more common links.
In a second aspect of the invention, a method for determining a plurality of paths in a network is provided. The network includes at least four nodes. A source node and a destination node in the network are selected. At least first and second maximally disjoint paths from the source node to the destination node are determined as a function of maximum bandwidth.